import { _decorator, Component } from 'cc';
import { YangLeGeYang_LevelList } from 'db://assets/Script/Game/DanCiPeiDui/YangLeGeYang_LevelList';
// import LianLianKan_Game from './LianLianKan_Game';
import { LianLianKan_GameStorage } from './Data/LianLianKan_GameStorage';
const { ccclass, property } = _decorator;

type levelInfo = {
    w: number,
    h: number,
    canMove: boolean, //是否移动
    arrMove: number[], // 定义消除后移动方向
    gameTime: number
}

@ccclass('LianLianKan_GameData')
export default class LianLianKan_GameData {
    static row: number = 4; // 行数
    static col: number = 4; // 列数

    public static CellWidth: number = 66//80 // 90;
    public static CellHeight: number = 66//80;

    static W: number = 600;
    static H: number = 600;

    // public static CurrentLevelIndex: number = 250;
    public static All_Sprite_List = [];


    static item_提示_number: number = 10;
    static item_打乱_number: number = 10;
    static item_提示_add_number: number = 10;
    static item_打乱_add_number: number = 10;

    // static size: number = S2048_GameData.W / S2048_GameData.row; // 方块的尺寸

    @property
    levelInfo: Array<levelInfo> = []

    public static CurrentLevelData: any = {};

    public static gameW: number = 6;
    public static gameH: number = 8;
    public static block_wh: number = 89;


    static Get_level() {
        return LianLianKan_GameStorage.data.mode_1.level;
    }

    static Set_level(_level) {
        LianLianKan_GameStorage.data.mode_1.level = _level;
        LianLianKan_GameStorage.saveData();
    }


    // // 示例
    // for (let i = 1; i <= 20; i++) {
    //     console.log(`Level ${i}: count = ${getCountByLevel(i, 3, 1, 3)}`);
    // }


    // public static Get_AllList() {
    //     let array = [];

    //     for (let index = 0; index < YangLeGeYang_LevelList.wordList.length; index++) {
    //         const item_list = YangLeGeYang_LevelList.wordList[index];
    //         // console.log(`item_data`, item_list);

    //         for (let index_2 = 0; index_2 < item_list.list.length; index_2++) {
    //             const item_data = item_list.list[index_2];
    //             // console.log(`item_data`, item_data);

    //             let res = {
    //                 key: item_data,
    //                 root: item_list.root,
    //             }
    //             array.push(res);
    //         }
    //     }

    //     // console.log(`res_arr`, array);

    //     return array;
    // }

    static InitData() {
        // LianLianKan_GameData.All_Sprite_List = LianLianKan_GameData.Get_AllList();
    }

    public static Get_LevelList() {
        return YangLeGeYang_LevelList;
    }
    public static Get_CurrentLevelData() {
        // return LianLianKan_GameData.Get_LevelList().wordList[LianLianKan_Game.Instance.currentLevel];
    }

    static Get_SpriteIndex() {
        // return 1
        let levelCount = LianLianKan_GameData.Get_LevelList().wordList.length // 3;
        let currentIndex = 1 // (LianLianKan_GameData.data.current_level % levelCount) + 0;
        return currentIndex;
    }

    public static async InitLevelData(_CurrentLevel) {
        let levelList = LianLianKan_GameData.Get_LevelList();
        // YangLeGeYang_GameData.CurrentLevelData = levelList.wordList[YangLeGeYang_GameData.CurrentLevelIndex];

        // YangLeGeYang_GameData.CurrentLevelData = levelList.wordList[YangLeGeYang_GameData.Get_CurrentLevelIndex()];
        LianLianKan_GameData.CurrentLevelData = levelList.wordList[LianLianKan_GameData.Get_SpriteIndex()];
    }


    // onLoad() {
    //     // window['gameData'] = this
    //     // this.init()
    // }
    // init() {
    //     this.levelInfo = [
    //         {
    //             w: 0,
    //             h: 0,
    //             canMove: true,
    //             arrMove: [],
    //             gameTime: 60
    //         },
    //         {
    //             w: 2,
    //             h: 3,
    //             canMove: false,
    //             arrMove: [1],
    //             gameTime: 10 * 60
    //         },
    //         {
    //             w: 3,
    //             h: 4,
    //             canMove: false,
    //             arrMove: [1, 2],
    //             gameTime: 30 * 60
    //         },
    //         {
    //             w: 3,
    //             h: 4,
    //             canMove: true,
    //             arrMove: [1, 2],
    //             gameTime: 30 * 60
    //         },
    //         {
    //             w: 4,
    //             h: 4,
    //             canMove: false,
    //             arrMove: [0],
    //             gameTime: 40 * 60 //update一秒钟大概执行60次，所以乘以60
    //         },
    //         {
    //             w: 4,
    //             h: 4,
    //             canMove: true,
    //             arrMove: [1, 2],
    //             gameTime: 40 * 60
    //         },
    //         {
    //             w: 4,
    //             h: 5,
    //             canMove: true,
    //             arrMove: [0, 1],
    //             gameTime: 60 * 60
    //         },
    //         {
    //             w: 4,
    //             h: 5,
    //             canMove: true,
    //             arrMove: [1, 2],
    //             gameTime: 60 * 60
    //         },
    //         {
    //             w: 4,
    //             h: 5,
    //             canMove: true,
    //             arrMove: [2, 3],
    //             gameTime: 60 * 60
    //         },
    //         {
    //             w: 4,
    //             h: 5,
    //             canMove: true,
    //             arrMove: [1, 2, 3],
    //             gameTime: 60 * 60
    //         },
    //         {
    //             w: 4,
    //             h: 5,
    //             canMove: true,
    //             arrMove: [4, 3, 2],
    //             gameTime: 60 * 60
    //         },
    //         {
    //             w: 5,
    //             h: 6,
    //             canMove: true,
    //             arrMove: [0, 1],
    //             gameTime: 90 * 60
    //         },
    //         {
    //             w: 5,
    //             h: 6,
    //             canMove: true,
    //             arrMove: [0, 1, 2],
    //             gameTime: 90 * 60
    //         },
    //         {
    //             w: 5,
    //             h: 6,
    //             canMove: true,
    //             arrMove: [0, 1, 2, 3],
    //             gameTime: 90 * 60
    //         },
    //         {
    //             w: 6,
    //             h: 6,
    //             canMove: true,
    //             arrMove: [0, 1, 2, 3],
    //             gameTime: 120 * 60
    //         },
    //         {
    //             w: 6,
    //             h: 7,
    //             canMove: true,
    //             arrMove: [0, 1, 2, 3],
    //             gameTime: 120 * 60
    //         },
    //         {
    //             w: 6,
    //             h: 7,
    //             canMove: true,
    //             arrMove: [1, 2, 3, 0],
    //             gameTime: 180 * 60
    //         },
    //         {
    //             w: 6,
    //             h: 7,
    //             canMove: true,
    //             arrMove: [3, 1, 2],
    //             gameTime: 180 * 60
    //         }
    // ]
    // }
}